参考文档: https://www.npmjs.com/package/kue#delayed-jobs
使用 Kue 实现定时器, 首先是使用 Kue 的队列功能, 定时器只是在队列里面的内容当到达队列头部的时候, 发现延时时间未到则先不执行而已.
目录
- 消息队列的初始化
- 发布消息
- 读取队列消息进行处理
初始化
首先要与 redis 进行连接, 此时未创建任何内容.
1 | const kue = require('kue'); |
生产者
然后分为生产者和消费者部分, 生产者向队列插入数据:
1 | const randDelay = Math.floor(Math.random() * 10 * 1e3); |
消费者
消费者从队列读取数据, 然后进行相应的处理:
1 | // 监听 queueName 队列, 并行 3 个线程处理数据, |
简单的说明
生产者生产数据的时候, 生产一条就需要调用一次 queue.create
, 而消费者则启动一次之后, 会一直运行下去, 发现有合适的数据就马上处理, 而且是以多个进程共同监听的.